<template>
	<view class="content">
		<!-- 轮播图 -->
		<u-swiper :list="slides " name="img_url" height="320"></u-swiper>
		<!-- 分类列表 -->
		<view class="u-text-center u-m-t-30">
			<u-tabs :list="categories" bar-width="100" item-width="160" :current="current"
				@change="change"></u-tabs>
		</view>
		<!-- 推荐列表 -->
		<u-row gutter="16" class="u-skeleton">
			<u-col span="6" v-for="(item,index) in goods" :key='index'>
				<goods-item :item="item"></goods-item>	
			</u-col>
		</u-row>
		
		<!-- 骨架屏 -->
		<u-skeleton :loading="loading" :animation="true"></u-skeleton>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				// 轮播图数据
				slides: [],
				// 标签数据
				categories: [{
						name: '默认'
					},
					{
						name: '销量'
					},
					{
						name: '推荐'
					},
					{
						name: '最新'
					}
				],
				// 分类标签默认索引号
				current: 0,
				// 首页商品数据
				goods:[],
				// 当前页
				page:1,
				// 骨架屏显示与隐藏
				loading:false,
				goods:[{},{},{},{}],
			}
		},
		onLoad() {
			// 调用网络请求首页数据函数
			this.getIndex()
		},
		methods: {
			// 分类标签点击事件
			change(index) {
				this.current = index
				// 先清空商品数据和页数
				this.goods = [{},{},{},{}]
				this.page = 1
				// 调用网络请求首页数据函数
				this.getIndex()
			},
			// 网络请求首页数据
			async getIndex(){
				// 显示骨架屏
				this.loading = true
				const params = {
					page:this.page
				}
				// 增加排序条件
				if(this.current == 1) params.sales = 1
				if(this.current == 2) params.recommend = 1
				if(this.current == 3) params.new = 1
				const res = await this.$u.api.index(params)
				// 请求数据完成 隐藏骨架屏
				this.loading = false
				this.slides = res.slides
				this.goods = this.goods.pop().title ? [...this.goods,...res.goods.data] : res.goods.data
			}
		},
		// 页面触底事件
		onReachBottom() {
			// 重新首页分类请求数据 页面加1
			this.page = this.page + 1
			// 调用网络请求首页数据函数
			this.getIndex()
		}
	}
</script>

<style lang="scss" scoped>

</style>
